package com.dm.yyxr.service.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dm.yyxr.mapper.CommunityMapper;
import com.dm.yyxr.pojo.Community;
import com.dm.yyxr.pojo.dto.CommunityDto;
import com.dm.yyxr.service.CommunityService;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community> implements CommunityService {
    /**
     * 根据地区代码和页码获取社区信息的分页列表
     * @param area_code
     * @param pageNo
     * @return
     */
    @Override
    public Page<CommunityDto> getCommunities(Integer area_code, int pageNo) {
        //调用getCommunities方法查询并返回指定地区代码和偏移量的社区信息列表。偏移量计算为(pageNo - 1) * 5，其中每页显示5条记录
        List<CommunityDto> communities = baseMapper.getCommunities(area_code, (pageNo - 1) * 5);
        //创建一个Page<CommunityDto>对象，指定当前页码为pageNo，每页显示5条记录
        Page<CommunityDto> page = new Page<>(pageNo,5);
        //将查询到的社区信息列表设置为页面的记录
        page.setRecords(communities);
        //查询并返回指定地区代码的社区总数
        Integer total = baseMapper.getCommunitiesCount(area_code);
        //设置页面的总记录数为社区总数
        page.setTotal(total);
        //根据总记录数计算并设置页面的总页数，每页显示5条记录
        page.setPages((total+4)/5);
        return page;
    }
}
